const express = require("express");
const adminListC = require("./Db/collections/adminList");
const {getMd5, getNowTime} = require("./utils");
const app = express();
app.use(express.json());// 接收请求体格式为application/json的数据
// 完成添加管理员接口
app.post("/admin",async (req,res,next)=>{
	try{
		// 1- 接收请求体的数据
		// 2- 验证管理员账号是否存在
		//    2-1- 存在：给予响应----》管理员的名字已经存在，请不要重复提交
		//    2-2- 不存在：添加管理-----》添加成功
		const {adminName,password} =req.body;
		// 获取与接收的管理员账号的名字相同的条数
		const count = await adminListC.count({adminName});
		if(count>0){
			res.json({
				ok:-1,
				msg:"管理员的名字已经存在，请不要重复提交"
			});
			return;
		}
		await adminListC.insertOne({
			adminName,
			password:getMd5(password),
			loginTime:getNowTime(),
			regTime:getNowTime()
		});
		res.json({
			ok:1,
			msg:"添加管理员成功"
		})
	}catch (err){
		res.json({
			ok:-1,
			msg:err.message
		})
	}


});
// 获取管理员列表接口
app.get("/adminList",async (req,res)=>{
	console.log(req.headers.host)
	try{
		const adminList = await adminListC.find({
			sortObj:{
				regTime:-1
			}
		});
		res.json({
			ok:1,
			msg:"获取成功",
			adminList
		})
	}catch (err){
		res.json({
			ok:-1,
			msg:err.message
		})
	}
})

// 登陆接口
app.post("/login",async (req,res)=>{
	try{
		// 1- 接收数据
		const {adminName,password} = req.body;
		// 2- 验证数据
		const info = await adminListC.findOne({
			adminName,
			password:getMd5(password)
		})
		// 3- 给予响应
		if(info){
			res.json({
				ok:1,
				msg:"登陆成功"
			})
		}else{
			res.json({
				ok:-1,
				msg:"账号或密码错误,请重新输入！"
			})
		}
	}catch (err){
		res.json({
			ok:-1,
			msg:err.message
		})
	}
})
app.listen(8091,()=>{
	console.log("success")
})